home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / akcl / kcl.lha / cmpnew / cmpmap.c < prev    next >
C/C++ Source or Header  |  1987-06-04  |  25KB  |  1,062 lines

  1.  
  2. /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
  3. #include <cmpinclude.h>
  4. #include "cmpmap.h"
  5. init_cmpmap(start,size,data)char *start;int size;object data;
  6. {    register object *base=vs_top;register object *sup=base+VM2;vs_check;
  7.     Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
  8.     (void)(putprop(VV[0],VV[1],VV[2]));
  9.     (void)(putprop(VV[3],VV[4],VV[2]));
  10.     (void)(putprop(VV[0],VV[5],VV[6]));
  11.     (void)(putprop(VV[7],VV[8],VV[2]));
  12.     (void)(putprop(VV[9],VV[10],VV[2]));
  13.     (void)(putprop(VV[7],VV[11],VV[6]));
  14.     (void)(putprop(VV[12],VV[13],VV[2]));
  15.     (void)(putprop(VV[14],VV[15],VV[2]));
  16.     (void)(putprop(VV[12],VV[16],VV[6]));
  17.     MF(VV[1],L10,start,size,data);
  18.     MF(VV[4],L11,start,size,data);
  19.     MF(VV[8],L12,start,size,data);
  20.     MF(VV[10],L13,start,size,data);
  21.     MF(VV[13],L14,start,size,data);
  22.     MF(VV[15],L15,start,size,data);
  23.     MF(VV[40],L16,start,size,data);
  24.     MF(VV[5],L17,start,size,data);
  25.     MF(VV[11],L18,start,size,data);
  26.     MF(VV[16],L19,start,size,data);
  27.     MF(VV[41],L20,start,size,data);
  28.     vs_top=vs_base=base;
  29. }
  30. /*    function definition for C1MAPCAR    */
  31.  
  32. static L10()
  33. {    register object *base=vs_base;
  34.     register object *sup=base+VM3;
  35.     vs_reserve(VM3);
  36.     check_arg(1);
  37.     vs_top=sup;
  38. TTL:;
  39.     base[1]= VV[0];
  40.     base[2]= Ct;
  41.     base[3]= base[0];
  42.     vs_top=(vs_base=base+1)+3;
  43.     L16();
  44.     return;
  45. }
  46. /*    function definition for C1MAPLIST    */
  47.  
  48. static L11()
  49. {    register object *base=vs_base;
  50.     register object *sup=base+VM4;
  51.     vs_reserve(VM4);
  52.     check_arg(1);
  53.     vs_top=sup;
  54. TTL:;
  55.     base[1]= VV[0];
  56.     base[2]= Cnil;
  57.     base[3]= base[0];
  58.     vs_top=(vs_base=base+1)+3;
  59.     L16();
  60.     return;
  61. }
  62. /*    function definition for C1MAPC    */
  63.  
  64. static L12()
  65. {    register object *base=vs_base;
  66.     register object *sup=base+VM5;
  67.     vs_reserve(VM5);
  68.     check_arg(1);
  69.     vs_top=sup;
  70. TTL:;
  71.     base[1]= VV[7];
  72.     base[2]= Ct;
  73.     base[3]= base[0];
  74.     vs_top=(vs_base=base+1)+3;
  75.     L16();
  76.     return;
  77. }
  78. /*    function definition for C1MAPL    */
  79.  
  80. static L13()
  81. {    register object *base=vs_base;
  82.     register object *sup=base+VM6;
  83.     vs_reserve(VM6);
  84.     check_arg(1);
  85.     vs_top=sup;
  86. TTL:;
  87.     base[1]= VV[7];
  88.     base[2]= Cnil;
  89.     base[3]= base[0];
  90.     vs_top=(vs_base=base+1)+3;
  91.     L16();
  92.     return;
  93. }
  94. /*    function definition for C1MAPCAN    */
  95.  
  96. static L14()
  97. {    register object *base=vs_base;
  98.     register object *sup=base+VM7;
  99.     vs_reserve(VM7);
  100.     check_arg(1);
  101.     vs_top=sup;
  102. TTL:;
  103.     base[1]= VV[12];
  104.     base[2]= Ct;
  105.     base[3]= base[0];
  106.     vs_top=(vs_base=base+1)+3;
  107.     L16();
  108.     return;
  109. }
  110. /*    function definition for C1MAPCON    */
  111.  
  112. static L15()
  113. {    register object *base=vs_base;
  114.     register object *sup=base+VM8;
  115.     vs_reserve(VM8);
  116.     check_arg(1);
  117.     vs_top=sup;
  118. TTL:;
  119.     base[1]= VV[12];
  120.     base[2]= Cnil;
  121.     base[3]= base[0];
  122.     vs_top=(vs_base=base+1)+3;
  123.     L16();
  124.     return;
  125. }
  126. /*    function definition for C1MAP-FUNCTIONS    */
  127.  
  128. static L16()
  129. {    register object *base=vs_base;
  130.     register object *sup=base+VM9;
  131.     vs_reserve(VM9);
  132.     check_arg(3);
  133.     vs_top=sup;
  134. TTL:;
  135.     base[3]= Cnil;
  136.     base[4]= Cnil;
  137.     if(endp(base[2])){
  138.     goto T29;}
  139.     if(!(endp(cdr(base[2])))){
  140.     goto T28;}
  141. T29:;
  142.     base[5]= VV[17];
  143.     base[6]= VV[18];
  144.     base[7]= make_fixnum(length(base[2]));
  145.     (void)simple_symlispcall_no_event(VV[42],base+5,3);
  146. T28:;
  147.     base[5]= car(base[2]);
  148.     base[3]= simple_symlispcall_no_event(VV[43],base+5,1);
  149.     base[5]= cadr(base[3]);
  150.     base[4]= simple_symlispcall_no_event(VV[44],base+5,1);
  151.     base[6]= cdr(base[2]);
  152.     base[7]= base[4];
  153.     base[5]= simple_symlispcall_no_event(VV[45],base+6,2);
  154.     base[6]= list(5,base[0],base[4],base[3],base[1],base[5]);
  155.     vs_top=(vs_base=base+6)+1;
  156.     return;
  157. }
  158. /*    function definition for C2MAPCAR    */
  159.  
  160. static L17()
  161. {    register object *base=vs_base;
  162.     register object *sup=base+VM10;
  163.     vs_reserve(VM10);
  164.     bds_check;
  165.     check_arg(3);
  166.     vs_top=sup;
  167. TTL:;
  168.     bds_bind(VV[19],symbol_value(VV[19]));
  169.     bds_bind(VV[21],VV[20]);
  170.     setq(VV[22],number_plus(symbol_value(VV[22]),VV[23]));
  171.     base[10]= symbol_value(VV[22]);
  172.     base[5]= make_cons(base[10],Ct);
  173.     base[10]= simple_symlispcall_no_event(VV[46],base+11,0);
  174.     base[6]= list(2,VV[24],base[10]);
  175.     setq(VV[26],number_plus(symbol_value(VV[26]),VV[23]));
  176.     base[10]= symbol_value(VV[26]);
  177.     base[7]= list(2,VV[25],base[10]);
  178.     {object V1;
  179.     object V2= base[2];
  180.     if(endp(V2)){
  181.     base[8]= Cnil;
  182.     goto T53;}
  183.     base[10]=V1=MMcons(Cnil,Cnil);
  184. T54:;
  185.     setq(VV[26],number_plus(symbol_value(VV[26]),VV[23]));
  186.     base[12]= symbol_value(VV[26]);
  187.     (V1->c.c_car)= list(2,VV[25],base[12]);
  188.     if(endp(V2=MMcdr(V2))){
  189.     base[8]= base[10];
  190.     goto T53;}
  191.     V1=MMcdr(V1)=MMcons(Cnil,Cnil);
  192.     goto T54;}
  193. T53:;
  194.     base[9]= Cnil;
  195.     base[10]= base[0];
  196.     base[9]= simple_symlispcall_no_event(VV[47],base+10,1);
  197.     base[11]=symbol_function(VV[48]);
  198.     base[12]= base[2];
  199.     base[14]= make_fixnum(length(base[2]));
  200.     base[15]= VV[27];
  201.     base[16]= Ct;
  202.     vs_top=(vs_base=base+14)+3;
  203.     Lmake_list();
  204.     vs_top=sup;
  205.     base[13]= vs_base[0];
  206.     base[10]= simple_lispcall_no_event(base+11,2);
  207.     base[11]= base[0];
  208.     vs_top=(vs_base=base+10)+2;
  209.     L20();
  210.     vs_top=sup;
  211.     base[2]= vs_base[0];
  212.     princ_str("\n    {object ",VV[28]);
  213.     base[10]= base[7];
  214.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  215.     princ_char(59,VV[28]);
  216.     {object V3;
  217.     object V4;
  218.     V3= base[8];
  219.     V4= car((V3));
  220. T79:;
  221.     if(!(endp((V3)))){
  222.     goto T80;}
  223.     goto T75;
  224. T80:;
  225.     princ_str("\n    object ",VV[28]);
  226.     base[10]= (V4);
  227.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  228.     princ_str("= ",VV[28]);
  229.     base[10]= car(base[2]);
  230.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  231.     princ_char(59,VV[28]);
  232.     base[10]= car(base[2]);
  233.     base[2]= cdr(base[2]);
  234.     V3= cdr((V3));
  235.     V4= car((V3));
  236.     goto T79;}
  237. T75:;
  238.     if((symbol_value(VV[29]))==Cnil){
  239.     goto T103;}
  240.     princ_str("\n    if(endp(",VV[28]);
  241.     base[10]= car(base[8]);
  242.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  243.     princ_char(41,VV[28]);
  244.     {object V5;
  245.     object V6;
  246.     V5= cdr(base[8]);
  247.     V6= car((V5));
  248. T114:;
  249.     if(!(endp((V5)))){
  250.     goto T115;}
  251.     goto T110;
  252. T115:;
  253.     princ_str("||endp(",VV[28]);
  254.     base[10]= (V6);
  255.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  256.     princ_char(41,VV[28]);
  257.     V5= cdr((V5));
  258.     V6= car((V5));
  259.     goto T114;}
  260. T110:;
  261.     princ_str("){",VV[28]);
  262.     goto T101;
  263. T103:;
  264.     princ_str("\n    if(",VV[28]);
  265.     base[10]= car(base[8]);
  266.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  267.     princ_str("==Cnil",VV[28]);
  268.     {object V7;
  269.     object V8;
  270.     V7= cdr(base[8]);
  271.     V8= car((V7));
  272. T139:;
  273.     if(!(endp((V7)))){
  274.     goto T140;}
  275.     goto T135;
  276. T140:;
  277.     princ_str("||",VV[28]);
  278.     base[10]= (V8);
  279.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  280.     princ_str("==Cnil",VV[28]);
  281.     V7= cdr((V7));
  282.     V8= car((V7));
  283.     goto T139;}
  284. T135:;
  285.     princ_str("){",VV[28]);
  286. T101:;
  287.     base[10]= Cnil;
  288.     base[11]= VV[30];
  289.     (void)simple_symlispcall_no_event(VV[50],base+10,2);
  290.     princ_char(125,VV[28]);
  291.     princ_str("\n    ",VV[28]);
  292.     base[10]= base[6];
  293.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  294.     princ_char(61,VV[28]);
  295.     base[10]= base[7];
  296.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  297.     princ_str("=MMcons(Cnil,Cnil);",VV[28]);
  298.     if((cdr(base[5]))==Cnil){
  299.     goto T168;}
  300.     princ_str("\nT",VV[28]);
  301.     base[10]= car(base[5]);
  302.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  303.     princ_str(":;",VV[28]);
  304. T168:;
  305.     bds_bind(VV[31],list(2,VV[32],cadr(base[7])));
  306.     setq(VV[22],number_plus(symbol_value(VV[22]),VV[23]));
  307.     base[12]= symbol_value(VV[22]);
  308.     bds_bind(VV[33],make_cons(base[12],Cnil));
  309.     bds_bind(VV[34],make_cons((VV[33]->s.s_dbind),symbol_value(VV[34])));
  310.     base[13]=symbol_function(VV[51]);
  311.     base[14]= base[0];
  312.     if((base[1])==Cnil){
  313.     goto T185;}
  314.     {object V9;
  315.     object V10= base[8];
  316.     if(endp(V10)){
  317.     base[15]= Cnil;
  318.     goto T183;}
  319.     base[16]=V9=MMcons(Cnil,Cnil);
  320. T187:;
  321.     base[18]= symbol_value(VV[36]);
  322.     base[19]= list(2,VV[32],cadr((V10->c.c_car)));
  323.     (V9->c.c_car)= list(3,VV[35],base[18],base[19]);
  324.     if(endp(V10=MMcdr(V10))){
  325.     base[15]= base[16];
  326.     goto T183;}
  327.     V9=MMcdr(V9)=MMcons(Cnil,Cnil);
  328.     goto T187;}
  329. T185:;
  330.     {object V11;
  331.     object V12= base[8];
  332.     if(endp(V12)){
  333.     base[15]= Cnil;
  334.     goto T183;}
  335.     base[16]=V11=MMcons(Cnil,Cnil);
  336. T189:;
  337.     (V11->c.c_car)= list(3,VV[35],symbol_value(VV[36]),(V12->c.c_car));
  338.     if(endp(V12=MMcdr(V12))){
  339.     base[15]= base[16];
  340.     goto T183;}
  341.     V11=MMcdr(V11)=MMcons(Cnil,Cnil);
  342.     goto T189;}
  343. T183:;
  344.     base[16]= base[9];
  345.     (void)simple_lispcall_no_event(base+13,3);
  346.     if((cdr((VV[33]->s.s_dbind)))==Cnil){
  347.     bds_unwind1;
  348.     bds_unwind1;
  349.     bds_unwind1;
  350.     goto T175;}
  351.     princ_str("\nT",VV[28]);
  352.     base[13]= car((VV[33]->s.s_dbind));
  353.     (void)simple_symlispcall_no_event(VV[49],base+13,1);
  354.     princ_str(":;",VV[28]);
  355.     bds_unwind1;
  356.     bds_unwind1;
  357.     bds_unwind1;
  358. T175:;
  359.     if((symbol_value(VV[29]))==Cnil){
  360.     goto T200;}
  361.     princ_str("\n    if(endp(",VV[28]);
  362.     base[10]= car(base[8]);
  363.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  364.     princ_str("=MMcdr(",VV[28]);
  365.     base[10]= car(base[8]);
  366.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  367.     princ_str("))",VV[28]);
  368.     {object V13;
  369.     object V14;
  370.     V13= cdr(base[8]);
  371.     V14= car((V13));
  372. T214:;
  373.     if(!(endp((V13)))){
  374.     goto T215;}
  375.     goto T210;
  376. T215:;
  377.     princ_str("||endp(",VV[28]);
  378.     base[10]= (V14);
  379.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  380.     princ_str("=MMcdr(",VV[28]);
  381.     base[10]= (V14);
  382.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  383.     princ_str("))",VV[28]);
  384.     V13= cdr((V13));
  385.     V14= car((V13));
  386.     goto T214;}
  387. T210:;
  388.     princ_str("){",VV[28]);
  389.     goto T198;
  390. T200:;
  391.     princ_str("\n    if((",VV[28]);
  392.     base[10]= car(base[8]);
  393.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  394.     princ_str("=MMcdr(",VV[28]);
  395.     base[10]= car(base[8]);
  396.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  397.     princ_str("))==Cnil",VV[28]);
  398.     {object V15;
  399.     object V16;
  400.     V15= cdr(base[8]);
  401.     V16= car((V15));
  402. T245:;
  403.     if(!(endp((V15)))){
  404.     goto T246;}
  405.     goto T241;
  406. T246:;
  407.     princ_str("||(",VV[28]);
  408.     base[10]= (V16);
  409.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  410.     princ_str("=MMcdr(",VV[28]);
  411.     base[10]= (V16);
  412.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  413.     princ_str("))==Cnil",VV[28]);
  414.     V15= cdr((V15));
  415.     V16= car((V15));
  416.     goto T245;}
  417. T241:;
  418.     princ_str("){",VV[28]);
  419. T198:;
  420.     base[10]= base[6];
  421.     base[11]= VV[30];
  422.     (void)simple_symlispcall_no_event(VV[50],base+10,2);
  423.     princ_char(125,VV[28]);
  424.     princ_str("\n    ",VV[28]);
  425.     base[10]= base[7];
  426.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  427.     princ_str("=MMcdr(",VV[28]);
  428.     base[10]= base[7];
  429.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  430.     princ_str(")=MMcons(Cnil,Cnil);",VV[28]);
  431.     princ_str("\n    ",VV[28]);
  432.     if(type_of(base[5])!=t_cons)FEwrong_type_argument(Scons,base[5]);
  433.     (base[5])->c.c_cdr = Ct;
  434.     princ_str("goto T",VV[28]);
  435.     base[10]= car(base[5]);
  436.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  437.     princ_char(59,VV[28]);
  438.     princ_char(125,VV[28]);
  439.     symlispcall_no_event(VV[52],base+10,0);
  440.     bds_unwind1;
  441.     bds_unwind1;
  442.     return;
  443. }
  444. /*    function definition for C2MAPC    */
  445.  
  446. static L18()
  447. {    register object *base=vs_base;
  448.     register object *sup=base+VM11;
  449.     vs_reserve(VM11);
  450.     bds_check;
  451.     check_arg(3);
  452.     vs_top=sup;
  453. TTL:;
  454.     bds_bind(VV[19],symbol_value(VV[19]));
  455.     bds_bind(VV[21],VV[20]);
  456.     setq(VV[22],number_plus(symbol_value(VV[22]),VV[23]));
  457.     base[9]= symbol_value(VV[22]);
  458.     base[5]= make_cons(base[9],Ct);
  459.     {object V17;
  460.     object V18= base[2];
  461.     if(endp(V18)){
  462.     base[7]= Cnil;
  463.     goto T289;}
  464.     base[9]=V17=MMcons(Cnil,Cnil);
  465. T290:;
  466.     setq(VV[26],number_plus(symbol_value(VV[26]),VV[23]));
  467.     base[11]= symbol_value(VV[26]);
  468.     (V17->c.c_car)= list(2,VV[25],base[11]);
  469.     if(endp(V18=MMcdr(V18))){
  470.     base[7]= base[9];
  471.     goto T289;}
  472.     V17=MMcdr(V17)=MMcons(Cnil,Cnil);
  473.     goto T290;}
  474. T289:;
  475.     base[6]= Cnil;
  476.     base[8]= Cnil;
  477.     base[9]= base[0];
  478.     base[8]= simple_symlispcall_no_event(VV[47],base+9,1);
  479.     base[10]=symbol_function(VV[48]);
  480.     base[11]= base[2];
  481.     base[13]= make_fixnum(length(base[2]));
  482.     base[14]= VV[27];
  483.     base[15]= Ct;
  484.     vs_top=(vs_base=base+13)+3;
  485.     Lmake_list();
  486.     vs_top=sup;
  487.     base[12]= vs_base[0];
  488.     base[9]= simple_lispcall_no_event(base+10,2);
  489.     base[10]= base[0];
  490.     vs_top=(vs_base=base+9)+2;
  491.     L20();
  492.     vs_top=sup;
  493.     base[2]= vs_base[0];
  494.     base[6]= car(base[2]);
  495.     princ_str("\n    {",VV[28]);
  496.     {object V19;
  497.     object V20;
  498.     V19= base[7];
  499.     V20= car((V19));
  500. T314:;
  501.     if(!(endp((V19)))){
  502.     goto T315;}
  503.     goto T310;
  504. T315:;
  505.     princ_str("\n    object ",VV[28]);
  506.     base[9]= (V20);
  507.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  508.     princ_str("= ",VV[28]);
  509.     base[9]= car(base[2]);
  510.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  511.     princ_char(59,VV[28]);
  512.     base[9]= car(base[2]);
  513.     base[2]= cdr(base[2]);
  514.     V19= cdr((V19));
  515.     V20= car((V19));
  516.     goto T314;}
  517. T310:;
  518.     if((symbol_value(VV[29]))==Cnil){
  519.     goto T338;}
  520.     princ_str("\n    if(endp(",VV[28]);
  521.     base[9]= car(base[7]);
  522.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  523.     princ_char(41,VV[28]);
  524.     {object V21;
  525.     object V22;
  526.     V21= cdr(base[7]);
  527.     V22= car((V21));
  528. T349:;
  529.     if(!(endp((V21)))){
  530.     goto T350;}
  531.     goto T345;
  532. T350:;
  533.     princ_str("||endp(",VV[28]);
  534.     base[9]= (V22);
  535.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  536.     princ_char(41,VV[28]);
  537.     V21= cdr((V21));
  538.     V22= car((V21));
  539.     goto T349;}
  540. T345:;
  541.     princ_str("){",VV[28]);
  542.     goto T336;
  543. T338:;
  544.     princ_str("\n    if(",VV[28]);
  545.     base[9]= car(base[7]);
  546.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  547.     princ_str("==Cnil",VV[28]);
  548.     {object V23;
  549.     object V24;
  550.     V23= cdr(base[7]);
  551.     V24= car((V23));
  552. T374:;
  553.     if(!(endp((V23)))){
  554.     goto T375;}
  555.     goto T370;
  556. T375:;
  557.     princ_str("||",VV[28]);
  558.     base[9]= (V24);
  559.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  560.     princ_str("==Cnil",VV[28]);
  561.     V23= cdr((V23));
  562.     V24= car((V23));
  563.     goto T374;}
  564. T370:;
  565.     princ_str("){",VV[28]);
  566. T336:;
  567.     base[9]= Cnil;
  568.     base[10]= VV[30];
  569.     (void)simple_symlispcall_no_event(VV[50],base+9,2);
  570.     princ_char(125,VV[28]);
  571.     if((cdr(base[5]))==Cnil){
  572.     goto T395;}
  573.     princ_str("\nT",VV[28]);
  574.     base[9]= car(base[5]);
  575.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  576.     princ_str(":;",VV[28]);
  577. T395:;
  578.     bds_bind(VV[31],VV[37]);
  579.     setq(VV[22],number_plus(symbol_value(VV[22]),VV[23]));
  580.     base[11]= symbol_value(VV[22]);
  581.     bds_bind(VV[33],make_cons(base[11],Cnil));
  582.     bds_bind(VV[34],make_cons((VV[33]->s.s_dbind),symbol_value(VV[34])));
  583.     base[12]=symbol_function(VV[51]);
  584.     base[13]= base[0];
  585.     if((base[1])==Cnil){
  586.     goto T411;}
  587.     {object V25;
  588.     object V26= base[7];
  589.     if(endp(V26)){
  590.     base[14]= Cnil;
  591.     goto T409;}
  592.     base[15]=V25=MMcons(Cnil,Cnil);
  593. T413:;
  594.     base[17]= symbol_value(VV[36]);
  595.     base[18]= list(2,VV[32],cadr((V26->c.c_car)));
  596.     (V25->c.c_car)= list(3,VV[35],base[17],base[18]);
  597.     if(endp(V26=MMcdr(V26))){
  598.     base[14]= base[15];
  599.     goto T409;}
  600.     V25=MMcdr(V25)=MMcons(Cnil,Cnil);
  601.     goto T413;}
  602. T411:;
  603.     {object V27;
  604.     object V28= base[7];
  605.     if(endp(V28)){
  606.     base[14]= Cnil;
  607.     goto T409;}
  608.     base[15]=V27=MMcons(Cnil,Cnil);
  609. T415:;
  610.     (V27->c.c_car)= list(3,VV[35],symbol_value(VV[36]),(V28->c.c_car));
  611.     if(endp(V28=MMcdr(V28))){
  612.     base[14]= base[15];
  613.     goto T409;}
  614.     V27=MMcdr(V27)=MMcons(Cnil,Cnil);
  615.     goto T415;}
  616. T409:;
  617.     base[15]= base[8];
  618.     (void)simple_lispcall_no_event(base+12,3);
  619.     if((cdr((VV[33]->s.s_dbind)))==Cnil){
  620.     bds_unwind1;
  621.     bds_unwind1;
  622.     bds_unwind1;
  623.     goto T402;}
  624.     princ_str("\nT",VV[28]);
  625.     base[12]= car((VV[33]->s.s_dbind));
  626.     (void)simple_symlispcall_no_event(VV[49],base+12,1);
  627.     princ_str(":;",VV[28]);
  628.     bds_unwind1;
  629.     bds_unwind1;
  630.     bds_unwind1;
  631. T402:;
  632.     if((symbol_value(VV[29]))==Cnil){
  633.     goto T426;}
  634.     princ_str("\n    if(endp(",VV[28]);
  635.     base[9]= car(base[7]);
  636.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  637.     princ_str("=MMcdr(",VV[28]);
  638.     base[9]= car(base[7]);
  639.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  640.     princ_str("))",VV[28]);
  641.     {object V29;
  642.     object V30;
  643.     V29= cdr(base[7]);
  644.     V30= car((V29));
  645. T440:;
  646.     if(!(endp((V29)))){
  647.     goto T441;}
  648.     goto T436;
  649. T441:;
  650.     princ_str("||endp(",VV[28]);
  651.     base[9]= (V30);
  652.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  653.     princ_str("=MMcdr(",VV[28]);
  654.     base[9]= (V30);
  655.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  656.     princ_str("))",VV[28]);
  657.     V29= cdr((V29));
  658.     V30= car((V29));
  659.     goto T440;}
  660. T436:;
  661.     princ_str("){",VV[28]);
  662.     goto T424;
  663. T426:;
  664.     princ_str("\n    if((",VV[28]);
  665.     base[9]= car(base[7]);
  666.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  667.     princ_str("=MMcdr(",VV[28]);
  668.     base[9]= car(base[7]);
  669.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  670.     princ_str("))==Cnil",VV[28]);
  671.     {object V31;
  672.     object V32;
  673.     V31= cdr(base[7]);
  674.     V32= car((V31));
  675. T471:;
  676.     if(!(endp((V31)))){
  677.     goto T472;}
  678.     goto T467;
  679. T472:;
  680.     princ_str("||(",VV[28]);
  681.     base[9]= (V32);
  682.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  683.     princ_str("=MMcdr(",VV[28]);
  684.     base[9]= (V32);
  685.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  686.     princ_str("))==Cnil",VV[28]);
  687.     V31= cdr((V31));
  688.     V32= car((V31));
  689.     goto T471;}
  690. T467:;
  691.     princ_str("){",VV[28]);
  692. T424:;
  693.     base[9]= base[6];
  694.     base[10]= VV[30];
  695.     (void)simple_symlispcall_no_event(VV[50],base+9,2);
  696.     princ_char(125,VV[28]);
  697.     princ_str("\n    ",VV[28]);
  698.     if(type_of(base[5])!=t_cons)FEwrong_type_argument(Scons,base[5]);
  699.     (base[5])->c.c_cdr = Ct;
  700.     princ_str("goto T",VV[28]);
  701.     base[9]= car(base[5]);
  702.     (void)simple_symlispcall_no_event(VV[49],base+9,1);
  703.     princ_char(59,VV[28]);
  704.     princ_char(125,VV[28]);
  705.     symlispcall_no_event(VV[52],base+9,0);
  706.     bds_unwind1;
  707.     bds_unwind1;
  708.     return;
  709. }
  710. /*    function definition for C2MAPCAN    */
  711.  
  712. static L19()
  713. {    register object *base=vs_base;
  714.     register object *sup=base+VM12;
  715.     vs_reserve(VM12);
  716.     bds_check;
  717.     check_arg(3);
  718.     vs_top=sup;
  719. TTL:;
  720.     bds_bind(VV[19],symbol_value(VV[19]));
  721.     bds_bind(VV[21],VV[20]);
  722.     setq(VV[22],number_plus(symbol_value(VV[22]),VV[23]));
  723.     base[10]= symbol_value(VV[22]);
  724.     base[5]= make_cons(base[10],Ct);
  725.     base[10]= simple_symlispcall_no_event(VV[46],base+11,0);
  726.     base[6]= list(2,VV[24],base[10]);
  727.     setq(VV[26],number_plus(symbol_value(VV[26]),VV[23]));
  728.     base[10]= symbol_value(VV[26]);
  729.     base[7]= list(2,VV[25],base[10]);
  730.     {object V33;
  731.     object V34= base[2];
  732.     if(endp(V34)){
  733.     base[8]= Cnil;
  734.     goto T512;}
  735.     base[10]=V33=MMcons(Cnil,Cnil);
  736. T513:;
  737.     setq(VV[26],number_plus(symbol_value(VV[26]),VV[23]));
  738.     base[12]= symbol_value(VV[26]);
  739.     (V33->c.c_car)= list(2,VV[25],base[12]);
  740.     if(endp(V34=MMcdr(V34))){
  741.     base[8]= base[10];
  742.     goto T512;}
  743.     V33=MMcdr(V33)=MMcons(Cnil,Cnil);
  744.     goto T513;}
  745. T512:;
  746.     base[9]= Cnil;
  747.     base[10]= base[0];
  748.     base[9]= simple_symlispcall_no_event(VV[47],base+10,1);
  749.     base[11]=symbol_function(VV[48]);
  750.     base[12]= base[2];
  751.     base[14]= make_fixnum(length(base[2]));
  752.     base[15]= VV[27];
  753.     base[16]= Ct;
  754.     vs_top=(vs_base=base+14)+3;
  755.     Lmake_list();
  756.     vs_top=sup;
  757.     base[13]= vs_base[0];
  758.     base[10]= simple_lispcall_no_event(base+11,2);
  759.     base[11]= base[0];
  760.     vs_top=(vs_base=base+10)+2;
  761.     L20();
  762.     vs_top=sup;
  763.     base[2]= vs_base[0];
  764.     princ_str("\n    {object ",VV[28]);
  765.     base[10]= base[7];
  766.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  767.     princ_char(59,VV[28]);
  768.     {object V35;
  769.     object V36;
  770.     V35= base[8];
  771.     V36= car((V35));
  772. T538:;
  773.     if(!(endp((V35)))){
  774.     goto T539;}
  775.     goto T534;
  776. T539:;
  777.     princ_str("\n    object ",VV[28]);
  778.     base[10]= (V36);
  779.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  780.     princ_str("= ",VV[28]);
  781.     base[10]= car(base[2]);
  782.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  783.     princ_char(59,VV[28]);
  784.     base[10]= car(base[2]);
  785.     base[2]= cdr(base[2]);
  786.     V35= cdr((V35));
  787.     V36= car((V35));
  788.     goto T538;}
  789. T534:;
  790.     if((symbol_value(VV[29]))==Cnil){
  791.     goto T562;}
  792.     princ_str("\n    if(endp(",VV[28]);
  793.     base[10]= car(base[8]);
  794.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  795.     princ_char(41,VV[28]);
  796.     {object V37;
  797.     object V38;
  798.     V37= cdr(base[8]);
  799.     V38= car((V37));
  800. T573:;
  801.     if(!(endp((V37)))){
  802.     goto T574;}
  803.     goto T569;
  804. T574:;
  805.     princ_str("||endp(",VV[28]);
  806.     base[10]= (V38);
  807.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  808.     princ_char(41,VV[28]);
  809.     V37= cdr((V37));
  810.     V38= car((V37));
  811.     goto T573;}
  812. T569:;
  813.     princ_str("){",VV[28]);
  814.     goto T560;
  815. T562:;
  816.     princ_str("\n    if(",VV[28]);
  817.     base[10]= car(base[8]);
  818.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  819.     princ_str("==Cnil",VV[28]);
  820.     {object V39;
  821.     object V40;
  822.     V39= cdr(base[8]);
  823.     V40= car((V39));
  824. T598:;
  825.     if(!(endp((V39)))){
  826.     goto T599;}
  827.     goto T594;
  828. T599:;
  829.     princ_str("||",VV[28]);
  830.     base[10]= (V40);
  831.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  832.     princ_str("==Cnil",VV[28]);
  833.     V39= cdr((V39));
  834.     V40= car((V39));
  835.     goto T598;}
  836. T594:;
  837.     princ_str("){",VV[28]);
  838. T560:;
  839.     base[10]= Cnil;
  840.     base[11]= VV[30];
  841.     (void)simple_symlispcall_no_event(VV[50],base+10,2);
  842.     princ_char(125,VV[28]);
  843.     princ_str("\n    ",VV[28]);
  844.     base[10]= base[6];
  845.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  846.     princ_char(61,VV[28]);
  847.     base[10]= base[7];
  848.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  849.     princ_str("=MMcons(Cnil,Cnil);",VV[28]);
  850.     if((cdr(base[5]))==Cnil){
  851.     goto T627;}
  852.     princ_str("\nT",VV[28]);
  853.     base[10]= car(base[5]);
  854.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  855.     princ_str(":;",VV[28]);
  856. T627:;
  857.     bds_bind(VV[31],list(2,VV[38],cadr(base[7])));
  858.     setq(VV[22],number_plus(symbol_value(VV[22]),VV[23]));
  859.     base[12]= symbol_value(VV[22]);
  860.     bds_bind(VV[33],make_cons(base[12],Cnil));
  861.     bds_bind(VV[34],make_cons((VV[33]->s.s_dbind),symbol_value(VV[34])));
  862.     base[13]=symbol_function(VV[51]);
  863.     base[14]= base[0];
  864.     if((base[1])==Cnil){
  865.     goto T644;}
  866.     {object V41;
  867.     object V42= base[8];
  868.     if(endp(V42)){
  869.     base[15]= Cnil;
  870.     goto T642;}
  871.     base[16]=V41=MMcons(Cnil,Cnil);
  872. T646:;
  873.     base[18]= symbol_value(VV[36]);
  874.     base[19]= list(2,VV[32],cadr((V42->c.c_car)));
  875.     (V41->c.c_car)= list(3,VV[35],base[18],base[19]);
  876.     if(endp(V42=MMcdr(V42))){
  877.     base[15]= base[16];
  878.     goto T642;}
  879.     V41=MMcdr(V41)=MMcons(Cnil,Cnil);
  880.     goto T646;}
  881. T644:;
  882.     {object V43;
  883.     object V44= base[8];
  884.     if(endp(V44)){
  885.     base[15]= Cnil;
  886.     goto T642;}
  887.     base[16]=V43=MMcons(Cnil,Cnil);
  888. T648:;
  889.     (V43->c.c_car)= list(3,VV[35],symbol_value(VV[36]),(V44->c.c_car));
  890.     if(endp(V44=MMcdr(V44))){
  891.     base[15]= base[16];
  892.     goto T642;}
  893.     V43=MMcdr(V43)=MMcons(Cnil,Cnil);
  894.     goto T648;}
  895. T642:;
  896.     base[16]= base[9];
  897.     (void)simple_lispcall_no_event(base+13,3);
  898.     if((cdr((VV[33]->s.s_dbind)))==Cnil){
  899.     bds_unwind1;
  900.     bds_unwind1;
  901.     bds_unwind1;
  902.     goto T634;}
  903.     princ_str("\nT",VV[28]);
  904.     base[13]= car((VV[33]->s.s_dbind));
  905.     (void)simple_symlispcall_no_event(VV[49],base+13,1);
  906.     princ_str(":;",VV[28]);
  907.     bds_unwind1;
  908.     bds_unwind1;
  909.     bds_unwind1;
  910. T634:;
  911.     if((symbol_value(VV[29]))==Cnil){
  912.     goto T659;}
  913.     princ_str("\n    while(!endp(MMcdr(",VV[28]);
  914.     base[10]= base[7];
  915.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  916.     princ_str(")))",VV[28]);
  917.     base[10]= base[7];
  918.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  919.     princ_str("=MMcdr(",VV[28]);
  920.     base[10]= base[7];
  921.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  922.     princ_str(");",VV[28]);
  923.     princ_str("\n    if(endp(",VV[28]);
  924.     base[10]= car(base[8]);
  925.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  926.     princ_str("=MMcdr(",VV[28]);
  927.     base[10]= car(base[8]);
  928.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  929.     princ_str("))",VV[28]);
  930.     {object V45;
  931.     object V46;
  932.     V45= cdr(base[8]);
  933.     V46= car((V45));
  934. T684:;
  935.     if(!(endp((V45)))){
  936.     goto T685;}
  937.     goto T680;
  938. T685:;
  939.     princ_str("||endp(",VV[28]);
  940.     base[10]= (V46);
  941.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  942.     princ_str("=MMcdr(",VV[28]);
  943.     base[10]= (V46);
  944.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  945.     princ_str("))",VV[28]);
  946.     V45= cdr((V45));
  947.     V46= car((V45));
  948.     goto T684;}
  949. T680:;
  950.     princ_str("){",VV[28]);
  951.     goto T657;
  952. T659:;
  953.     princ_str("\n    while(MMcdr(",VV[28]);
  954.     base[10]= base[7];
  955.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  956.     princ_str(")!=Cnil)",VV[28]);
  957.     base[10]= base[7];
  958.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  959.     princ_str("=MMcdr(",VV[28]);
  960.     base[10]= base[7];
  961.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  962.     princ_str(");",VV[28]);
  963.     princ_str("\n    if((",VV[28]);
  964.     base[10]= car(base[8]);
  965.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  966.     princ_str("=MMcdr(",VV[28]);
  967.     base[10]= car(base[8]);
  968.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  969.     princ_str("))==Cnil",VV[28]);
  970.     {object V47;
  971.     object V48;
  972.     V47= cdr(base[8]);
  973.     V48= car((V47));
  974. T726:;
  975.     if(!(endp((V47)))){
  976.     goto T727;}
  977.     goto T722;
  978. T727:;
  979.     princ_str("||(",VV[28]);
  980.     base[10]= (V48);
  981.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  982.     princ_str("=MMcdr(",VV[28]);
  983.     base[10]= (V48);
  984.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  985.     princ_str("))==Cnil",VV[28]);
  986.     V47= cdr((V47));
  987.     V48= car((V47));
  988.     goto T726;}
  989. T722:;
  990.     princ_str("){",VV[28]);
  991. T657:;
  992.     princ_str("\n    ",VV[28]);
  993.     base[10]= base[6];
  994.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  995.     princ_char(61,VV[28]);
  996.     base[10]= base[6];
  997.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  998.     princ_str("->c.c_cdr;",VV[28]);
  999.     base[10]= base[6];
  1000.     base[11]= VV[30];
  1001.     (void)simple_symlispcall_no_event(VV[50],base+10,2);
  1002.     princ_char(125,VV[28]);
  1003.     princ_str("\n    ",VV[28]);
  1004.     if(type_of(base[5])!=t_cons)FEwrong_type_argument(Scons,base[5]);
  1005.     (base[5])->c.c_cdr = Ct;
  1006.     princ_str("goto T",VV[28]);
  1007.     base[10]= car(base[5]);
  1008.     (void)simple_symlispcall_no_event(VV[49],base+10,1);
  1009.     princ_char(59,VV[28]);
  1010.     princ_char(125,VV[28]);
  1011.     symlispcall_no_event(VV[52],base+10,0);
  1012.     bds_unwind1;
  1013.     bds_unwind1;
  1014.     return;
  1015. }
  1016. /*    function definition for PUSH-CHANGED-VARS    */
  1017.  
  1018. static L20()
  1019. {    register object *base=vs_base;
  1020.     register object *sup=base+VM13;
  1021.     vs_reserve(VM13);
  1022.     check_arg(2);
  1023.     vs_top=sup;
  1024. TTL:;
  1025.     base[2]= Cnil;
  1026.     base[3]= make_cons(base[1],Cnil);
  1027.     base[4]= base[0];
  1028.     base[5]= car(base[4]);
  1029. T770:;
  1030.     if(!(endp(base[4]))){
  1031.     goto T771;}
  1032.     base[6]= reverse(base[2]);
  1033.     vs_top=(vs_base=base+6)+1;
  1034.     return;
  1035. T771:;
  1036.     if(!(type_of(base[5])==t_cons)){
  1037.     goto T777;}
  1038.     if(!(car(base[5])==VV[39])){
  1039.     goto T777;}
  1040.     base[6]= cadr(base[5]);
  1041.     base[7]= base[3];
  1042.     if((simple_symlispcall_no_event(VV[53],base+6,2))==Cnil){
  1043.     goto T777;}
  1044.     base[7]= simple_symlispcall_no_event(VV[46],base+8,0);
  1045.     base[6]= list(2,VV[24],base[7]);
  1046.     princ_str("\n    ",VV[28]);
  1047.     base[7]= base[6];
  1048.     (void)simple_symlispcall_no_event(VV[49],base+7,1);
  1049.     princ_str("= ",VV[28]);
  1050.     base[7]= base[5];
  1051.     (void)simple_symlispcall_no_event(VV[49],base+7,1);
  1052.     princ_char(59,VV[28]);
  1053.     base[2]= make_cons(base[6],base[2]);
  1054.     goto T775;
  1055. T777:;
  1056.     base[2]= make_cons(base[5],base[2]);
  1057. T775:;
  1058.     base[4]= cdr(base[4]);
  1059.     base[5]= car(base[4]);
  1060.     goto T770;
  1061. }
  1062.